إنشاء أنواع منشورات مخصصة (Custom Post Types) في ووردبريس: دليل شامل ومفصل
يُعد نظام إدارة المحتوى ووردبريس من أشهر المنصات وأكثرها استخدامًا لبناء المواقع الإلكترونية، لما يتمتع به من مرونة وقدرة على التخصيص بشكل كبير. واحدة من أهم الميزات التي تميز ووردبريس هي القدرة على إنشاء أنواع منشورات مخصصة (Custom Post Types)، والتي تفتح آفاقًا واسعة للمطورين وأصحاب المواقع لإنشاء محتوى منظم ومصنف بطريقة تتناسب مع طبيعة الموقع والهدف منه.
في هذا المقال المفصل، سنستعرض مفهوم أنواع المنشورات المخصصة، أهميتها، كيفية إنشائها وتخصيصها بطرق مختلفة، بالإضافة إلى كيفية إدارتها واستغلالها لتحسين تجربة المستخدم وتنظيم المحتوى بشكل احترافي.
مفهوم أنواع المنشورات المخصصة (Custom Post Types)
في ووردبريس، هناك نوعان رئيسيان من المحتوى: المنشورات (Posts) والصفحات (Pages). المنشورات تستخدم عادة للمقالات والتدوينات التي تُنشر بشكل زمني متسلسل، بينما الصفحات تُستخدم للمحتوى الثابت مثل صفحة “من نحن” أو “اتصل بنا”. لكن في كثير من الأحيان، يحتاج أصحاب المواقع إلى أنواع محتوى تختلف عن المنشورات والصفحات التقليدية، مثل المنتجات، المشاريع، الشهادات، الفعاليات، أو حتى ملفات الوسائط المختلفة.
أنواع المنشورات المخصصة هي ببساطة أنواع محتوى جديدة يتم إنشاؤها في ووردبريس، تسمح بتنظيم محتوى مختلف عن المنشورات والصفحات، مع إمكانية إضافة خصائص وإعدادات مخصصة تلائم طبيعة هذا المحتوى.
أهمية استخدام أنواع المنشورات المخصصة
-
تنظيم المحتوى: تتيح أنواع المنشورات المخصصة تصنيف المحتوى بطريقة منظمة تتيح سهولة التصفح والبحث.
-
تخصيص الواجهة: يمكن لكل نوع منشور مخصص أن يمتلك واجهته الخاصة في لوحة التحكم، مما يسهل إدارة المحتوى.
-
تحسين تجربة المستخدم: بتقديم محتوى مصنف ومرتب، يصبح التنقل في الموقع أكثر سلاسة ووضوحًا للزائر.
-
تعزيز أداء الموقع: من خلال فصل أنواع المحتوى المختلفة، يمكن تحسين سرعة عرض الصفحات وتقليل التعقيدات.
-
تسهيل عمليات التطوير والتخصيص: تتيح للمطورين إنشاء وظائف مخصصة بناءً على نوع المحتوى دون الحاجة لتعديل بنية النظام الأساسية.
كيفية إنشاء أنواع منشورات مخصصة في ووردبريس
يمكن إنشاء أنواع المنشورات المخصصة في ووردبريس عبر طريقتين رئيسيتين:
1. استخدام الأكواد البرمجية (تعديل ملف functions.php أو إضافة ملف مخصص)
يتم إنشاء نوع منشور مخصص عن طريق استخدام دالة register_post_type() في ملف functions.php الخاص بالقالب أو في ملف إضافة (Plugin) مخصص. هذه الطريقة تمنحك تحكمًا كاملاً في خصائص نوع المنشور.
الصيغة الأساسية لإنشاء نوع منشور مخصص:
phpfunction create_custom_post_type() {
$labels = array(
'name' => __('كتب'),
'singular_name' => __('كتاب'),
'menu_name' => __('الكتب'),
'name_admin_bar' => __('كتاب'),
'add_new' => __('إضافة جديد'),
'add_new_item' => __('إضافة كتاب جديد'),
'new_item' => __('كتاب جديد'),
'edit_item' => __('تعديل الكتاب'),
'view_item' => __('عرض الكتاب'),
'all_items' => __('جميع الكتب'),
'search_items' => __('بحث في الكتب'),
'not_found' => __('لم يتم العثور على كتب'),
'not_found_in_trash' => __('لم يتم العثور على كتب في سلة المهملات'),
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => 'books'),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 5,
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
'taxonomies' => array('category', 'post_tag'),
'show_in_rest' => true,
);
register_post_type('book', $args);
}
add_action('init', 'create_custom_post_type');
في هذا المثال، تم إنشاء نوع منشور مخصص باسم “كتاب” مع مجموعة من الخصائص التي تحدد كيف سيظهر في لوحة التحكم وفي الموقع.
شرح أهم الخصائص المستخدمة:
-
labels: مصفوفة تحتوي على النصوص التي تظهر في واجهة الإدارة. -
public: إذا كان نوع المنشور عامًا يظهر على الموقع وللزائرين. -
show_ui: تفعيل أو تعطيل ظهور الواجهة الإدارية لنوع المنشور. -
rewrite: إعدادات إعادة كتابة الروابط الثابتة. -
supports: الخصائص التي يدعمها نوع المنشور (مثل العنوان، المحرر، الصورة المميزة، التعليقات…). -
taxonomies: التصنيفات والوسوم التي يمكن ربطها بنوع المنشور. -
show_in_rest: لجعل نوع المنشور متوافق مع محرر “جوتنبرج” وواجهة REST API.
2. استخدام الإضافات (Plugins)
لمن لا يفضلون التعامل مع الأكواد، هناك إضافات متوفرة في مستودع ووردبريس تساعد على إنشاء أنواع منشورات مخصصة بسهولة وبدون كتابة أكواد. أشهر هذه الإضافات:
-
Custom Post Type UI: إضافة سهلة الاستخدام لإنشاء وإدارة أنواع المنشورات المخصصة والتصنيفات.
-
Pods – Custom Content Types and Fields: إضافة متقدمة تسمح بإنشاء أنواع منشورات مخصصة مع الحقول المخصصة والتعامل مع قواعد البيانات.
-
Toolset Types: إضافة قوية لإنشاء أنواع منشورات مخصصة، الحقول المخصصة، وتصنيفات مخصصة مع قدرات عرض متقدمة.
تتيح هذه الإضافات واجهات استخدام بصرية تمكن المستخدم من تحديد اسم نوع المنشور، تسميات الواجهة، الحقول المدعومة، الروابط الثابتة، والتصنيفات المرتبطة، وكل ذلك بدون الحاجة لكتابة كود برمجي.
الحقول المخصصة (Custom Fields) وأنواع المنشورات المخصصة
تعتبر الحقول المخصصة جزءًا مهمًا جدًا عند إنشاء أنواع منشورات مخصصة. فهي تتيح إضافة بيانات إضافية غير موجودة في الحقول الافتراضية (العنوان، المحتوى، الصورة…).
أهمية الحقول المخصصة
-
تخصيص البيانات المعروضة لكل منشور.
-
تخزين معلومات إضافية مثل السعر، تاريخ الفعالية، المؤلف، تقييمات، مواصفات تقنية، وغيرها.
-
تحسين دقة البحث وفرز المحتوى.
طرق إنشاء الحقول المخصصة
-
استخدام إضافة Advanced Custom Fields (ACF):
-
أشهر إضافة لإدارة الحقول المخصصة.
-
تتيح إنشاء أنواع مختلفة من الحقول: نص، رقم، صورة، روابط، اختيار من قائمة، تواريخ، ملفات، إلخ.
-
يمكن ربط الحقول بنوع المنشور المخصص بسهولة.
-
-
إنشاء الحقول يدويًا عبر البرمجة:
-
باستخدام دوال مثل
add_meta_box()وsave_post()لإضافة صناديق ميتا (Meta Boxes) للحقول في لوحة تحكم إدارة المحتوى. -
هذه الطريقة تتيح تحكمًا كاملًا في تصميم واجهة الإدخال ومعالجة البيانات.
-
تصنيفات وأنواع تصنيفات مخصصة (Taxonomies) مع أنواع المنشورات المخصصة
بالإضافة إلى إنشاء نوع منشور مخصص، يمكن أيضًا إنشاء تصنيفات مخصصة لتنظيم المحتوى داخل هذا النوع. التصنيفات المخصصة تعمل كالفئات أو الوسوم لكنها تكون خاصة بنوع المنشور الذي تم إنشاؤه.
استخدام دالة register_taxonomy()
يمكن إنشاء تصنيفات مخصصة مرتبطة بأنواع منشورات مخصصة لتعزيز التنظيم والبحث. مثال:
phpfunction create_custom_taxonomy() {
$labels = array(
'name' => __('أنواع الكتب'),
'singular_name' => __('نوع كتاب'),
'search_items' => __('بحث في أنواع الكتب'),
'all_items' => __('جميع أنواع الكتب'),
'edit_item' => __('تعديل نوع الكتاب'),
'update_item' => __('تحديث نوع الكتاب'),
'add_new_item' => __('إضافة نوع كتاب جديد'),
'new_item_name' => __('اسم نوع الكتاب الجديد'),
'menu_name' => __('أنواع الكتب'),
);
$args = array(
'hierarchical' => true, // إذا كانت تصنيفات هرمية مثل الفئات
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'book-type'),
);
register_taxonomy('book_type', array('book'), $args);
}
add_action('init', 'create_custom_taxonomy');
بهذه الطريقة، يمكن تقسيم الكتب على أنواع مختلفة مثل “روايات”، “كتب علمية”، “كتب أطفال”، وغيرها.
استخدامات عملية لأنواع المنشورات المخصصة في المواقع
-
المواقع التجارية: يمكن إنشاء نوع منشور مخصص للمنتجات مع حقل السعر، وصف المنتج، المواصفات التقنية، صورة المنتج، وخيارات الشحن.
-
المواقع الإخبارية: إنشاء نوع منشور مخصص للأخبار العاجلة، والتقارير الخاصة، والمقابلات.
-
مواقع الفعاليات: تنظيم الفعاليات والندوات مع بيانات مثل التاريخ، المكان، المحاضر، والتسجيل.
-
مواقع المعارض أو المحافظ الشخصية: تنظيم المشاريع أو الأعمال الفنية مع عرض صور، وصف المشروع، التكنولوجيا المستخدمة.
-
مواقع التعليم الإلكتروني: إنشاء أنواع منشورات مخصصة للدروس، الدورات، الامتحانات، والشهادات.
كيفية عرض أنواع المنشورات المخصصة على الموقع
للعرض الأمثل لأنواع المنشورات المخصصة على واجهة الموقع، يتم إنشاء قوالب عرض مخصصة في القالب (Theme). يمكن تخصيصها باستخدام ملفات قالب ووردبريس القياسية:
-
single-{post_type}.php: قالب عرض مفرد للمنشور المخصص.
-
archive-{post_type}.php: قالب أرشيف لعرض قائمة المنشورات الخاصة بالنوع.
على سبيل المثال، إذا كان اسم نوع المنشور book، يمكن إنشاء ملف single-book.php لعرض تفاصيل الكتاب، وملف archive-book.php لعرض قائمة بجميع الكتب.
عرض المنشورات باستخدام استعلام WP_Query
لإظهار منشورات مخصصة داخل صفحات معينة أو في أجزاء من القالب، يتم استخدام كائن WP_Query مع تحديد نوع المنشور:
php$args = array(
'post_type' => 'book',
'posts_per_page' => 10,
'orderby' => 'date',
'order' => 'DESC',
);
$query = new WP_Query($args);
if($query->have_posts()) {
while($query->have_posts()) {
$query->the_post();
the_title(''
,'');
the_excerpt();
}
wp_reset_postdata();
} else {
echo 'لا توجد كتب لعرضها.';
}
تحسين SEO لأنواع المنشورات المخصصة
لضمان ظهور أنواع المنشورات المخصصة في نتائج البحث بشكل جيد، يجب الانتباه إلى عدة نقاط:
-
تهيئة الروابط الثابتة (Permalinks): استخدام إعدادات إعادة كتابة الروابط بطريقة واضحة وقابلة للقراءة.
-
دعم وسوم الميتا (Meta Tags): من خلال إضافات SEO مثل Yoast SEO أو Rank Math، يمكن تهيئة الميتا وصف وعناوين المنشورات المخصصة.
-
إنشاء خرائط مواقع XML (Sitemaps): تحديث خرائط المواقع لتشمل أنواع المنشورات المخصصة.
-
تحسين سرعة التحميل وتجربة المستخدم: باستخدام تقنيات التخزين المؤقت والتحميل التدريجي.
-
استخدام المحتوى الغني: دمج الصور، الفيديو، والجداول المناسبة داخل المنشورات.
الاعتبارات الأمنية وأفضل الممارسات
-
التحقق من البيانات المدخلة: عند استخدام الحقول المخصصة، يجب التأكد من فحص وتنظيف البيانات قبل حفظها في قاعدة البيانات.
-
تحديد القدرات والصلاحيات: تحديد من يمكنه إنشاء أو تعديل أنواع المنشورات عبر خاصية
capability_typeوcapabilities. -
تحديث القوالب والإضافات بشكل دوري: لضمان التوافق والأمان.
-
التأكد من عمل نسخ احتياطية دورية: قبل إضافة أي تغييرات جذرية في نظام المحتوى.
جدول يلخص خصائص دالة register_post_type
| الخاصية | الوصف | القيم الشائعة |
|---|---|---|
labels |
التسميات الخاصة بأنواع المنشورات في لوحة التحكم | مصفوفة نصوص بالعربية |
public |
جعل المنشور ظاهرًا على الموقع العام | true أو false |
show_ui |
عرض الواجهة الإدارية لنوع المنشور | true أو false |
supports |
تحديد الحقول المدعومة في نوع المنشور | ‘title’, ‘editor’, ‘thumbnail’, ‘comments’ |
rewrite |
إعدادات الروابط الثابتة | مصفوفة أو false |
has_archive |
تمكين صفحة الأرشيف لنوع المنشور | true أو false |
hierarchical |
إذا كان النوع يسمح بالتسلسل الهرمي (مثل الصفحات) | true أو false |
menu_position |
موقع النوع في قائمة لوحة التحكم | رقم (مثلاً 5 يعني تحت المنشورات) |
show_in_rest |
دعم محرر جوتنبرج وREST API | true أو false |
taxonomies |
التصنيفات المرتبطة بنوع المنشور | مصفوفة تصنيفات مثل ‘category’, ‘post_tag’ |
خلاصة
يُعد إنشاء أنواع منشورات مخصصة في ووردبريس من الأدوات القوية التي تعزز من قدرة الموقع على تنظيم وعرض محتوى متنوع بشكل مخصص يتناسب مع طبيعة الموقع واحتياجاته. سواء كنت مطورًا محترفًا أو مستخدمًا عاديًا، فإن استغلال هذه الخاصية يوفر إمكانيات كبيرة لإنشاء مواقع متطورة ومرنة. عبر استخدام الأكواد أو الإضافات المساعدة، يمكن التحكم الكامل في تصميم، إدارة، وعرض أنواع المنشورات الخاصة، مما يعزز من تجربة المستخدم ويزيد من فاعلية الموقع وأدائه.

